MACD_TRIGGER_CROSS_TRIANGLEMACD Triangle Trigger Indicator by thebearfib
Overview
The MACD Cross Triangle Indicator is a powerful tool for traders who rely on the MACD's signal line crossovers to make informed trading decisions. This indicator enhances the traditional MACD by allowing users to customize triggers for bullish and bearish signals and by displaying these signals directly on the chart with visually distinctive labels.
Features
Customizable Color Scheme: Choose distinct colors for bullish and bearish signals to fit your chart's theme or your personal preference.
Flexible Trigger Conditions: Select from a variety of trigger conditions based on MACD and signal line behaviors over a specified number of bars back.
Visual Signal Indicators: Bullish and bearish signals are marked with upward and downward triangles, making it easy to spot potential entry or exit points.
Detailed Trigger Descriptions: A comprehensive table lists all available triggers and their descriptions, aiding in selection and understanding of each trigger's mechanism.
Configuration Options
Bullish and Bearish Colors: Customize the color of the labels for bullish (upward) and bearish (downward) signals.
Trend Lookback Period: Choose how far back (in bars) the indicator should look to determine the trend, affecting the calculation of certain triggers.
Trigger Selection for Bullish and Bearish Signals: Pick specific triggers for both bullish and bearish conditions from a list of 10 different criteria, ranging from MACD crossovers to historical comparisons of MACD, signal line, and histogram values.
Label Size and Font Settings: Adjust the size of the signal labels on the chart and the font size of the trigger descriptions table to ensure readability and fit with your chart layout.
Trigger Descriptions Table Position and Color: Customize the position and color of the trigger descriptions table to match your chart's aesthetic and layout preferences.
Trigger Mechanisms
Trigger 1 to 10: Each trigger corresponds to a specific condition involving the MACD line, signal line, and histogram. These include crossovers, directional changes compared to previous bars, and comparisons of current values to historical values.
Usage
1. Select Trigger Conditions: Choose the desired triggers for bullish and bearish signals based on your trading strategy.
2. Customize Visuals: Set your preferred colors for the bullish and bearish labels, adjust label and font sizes, and configure the trigger descriptions table.
3. Analyze Signals: Watch for the upward (bullish) and downward (bearish) triangles to identify potential trading opportunities based on MACD crossover signals.
Conclusion
The MACD Cross Triangle Indicator offers a customizable and visually intuitive way to leverage MACD crossover signals for trading. With its flexible settings and clear signal indicators, traders can tailor the indicator to fit their strategy and improve their decision-making process on TradingView.
스크립트에서 " TABLE"에 대해 찾기
Divergence AnalyzerUnlock the potential of your trading strategy with the Divergence Analyzer, a sophisticated indicator designed to identify divergence patterns between two financial instruments. Whether you're a seasoned trader or just starting, this tool provides valuable insights into market trends and potential trading opportunities.
Key Features:
1. Versatility in Symbol Selection:
- Choose from a wide range of symbols for comparison, including popular indices like XAUUSD and SPX.
- Seamlessly toggle between symbols to analyze divergences and make informed trading decisions.
2. Flexible Calculation Options:
- Customizable options allow you to use a different symbol for calculation instead of the chart symbol.
- Fine-tune your analysis by selecting specific symbols for comparison based on your trading preferences.
3. Logarithmic Scale Analysis:
- Utilizes logarithmic scales for accurate representation of price movements.
- Linear regression coefficients are calculated on the logarithmic scale, providing a comprehensive view of trend strength.
4. Dynamic Length and Smoothing:
- Adjust the length parameter to adapt the indicator to different market conditions.
- Smoothed linear regression with exponential moving averages enhances clarity and reduces noise.
5. Standard Deviation Normalization:
- Normalizes standard deviations over 200 periods, offering a standardized view of price volatility.
- Easily compare volatility levels across different symbols for effective divergence analysis.
6. Color-Coded Divergence Visualization:
- Clearly distinguish positive and negative divergences with customizable color options.
- Visualize divergence deltas with an intuitive color scheme for quick and effective interpretation.
7. Symbol Information Table:
- An included table provides at-a-glance information about the selected symbols.
- Identify Symbol 1 and Symbol 2, along with their corresponding positive and negative divergence colors.
How to Use:
1. Select symbols for analysis using the user-friendly inputs.
2. Customize calculation options based on your preferences.
3. Analyze the divergence delta plot for clear visual indications.
4. Refer to the symbol information table for a quick overview of selected instruments.
Empower your trading strategy with the Divergence Analyzer and gain a competitive edge in the dynamic world of financial markets. Start making more informed decisions today!
SandTigerSandTiger is an auto-counting tool that counts naturally occurring events in a price series. This version has been reduced to 377 lines of code and should run faster than previous versions. Although not shown here, I highly recommend running my 'ELB' script with SandTiger. ELB is an 'event locator' and will mark all points that SandTiger numbers - giving you visual cues as to where these points are located. ELB also displays support/resistance levels.
SandTiger is designed to be used with MAGENTA - a counting system for Forex and other markets.
MAGENTA is a free and open framework for understanding and explaining price movement in financial markets. Any materials associated with MAGENTA are strictly for educational purposes only.
SandTiger tracks Component Values, Dyads, and Sum Table Values (STV's) over straight and curved trends, allowing a trader to discern where directional shifts are likely to occur.
SandTiger requires just 3 things to function accurately:
1) A correct starting point (this will typically be an obvious trend turn high or low in a series of price moves).
2) A 'push 1' count ('push 1' runs from the starting point to the event prior to the first terminal of the first FCT or Fractured Counter-Trend).
3) A 'high prime' value (the high prime count runs from the starting point through to the second terminal of the first FCT with no skips).
FRAMEWORK OVERVIEW: 'Component' values are filtered from the prime set (including the half prime and further reductions). Once we have the comp table we add the values to get a 'total'. With the 'total' we divide and multiply by two to get two additional values. 'Derivatives' are based on various calculations using these three values.
We're looking for 'total/2' to count into either itself, 'total', 'total*2', or a derivative. Comp counts are in Tx form and counted from trend start. If the trend doesn't turn on a comp value it will likely turn on a Dyad or STV value. If that also doesn't happen it's likely you have a 'curved' trend/sequence that will turn on one of the above after moving away from its high/low. This can also be traded using SandTiger's 'Seg Terminals' skip option.
Sum tables and Dyad values are drawn from the 'primes' and Dyads use the 'push1' value as well. In a structural trend, primes are gotten by counting pushpulls 1 & 2 in 'Ti' form. Comps, Sum table values, and Dyads are equivalent, sequences can turn on either value type belonging to the 1st or 2nd prime set. Both STV's and Dyads are counted in 'Tx' form (except where count-through signals occur).
Types and antitypes correlate and are associated with a 12-count 'cycle.' (Ti = 'Terminals Included'; Tx = 'Terminals eXcluded'; both refer to FCT terminals)
THE STRATEGY:
For Structures: Trade Comps, Dyads, and STV's from sets 1 (all) and 2 (Dyads and STV's only) in the 'main' segment then on the 'carry-over' by skipping segment terminals. If a PC or cycle caps the sequence, trade that as well.
For NSM's: Trade movements that flash a signal prior to the end of the initial cycle. The mark will be the push1 value. Twelve will be the 'high prime.' Skip interrupts and trade carry-over values.
The first version of SandTiger was conceived/planned/authored by Erek A.D. and coded by Erek A.D. and @SimpleCryptoLife beginning in August 2022 and finishing in Dec. 2022
The current version was written and developed July 3, 2023 and has been refined and upgraded by Erek A.D. through Jan. 2024...
Z-ScoreThe "Z-Score" indicator is a unique and powerful tool designed to help traders identify overbought and oversold conditions in the market. Below is an explanation of its features, usefulness, and what makes it special:
Features:
Z-Score Calculation: The indicator calculates the Z-Score, a statistical measure that represents how far the current price is from the moving average (MA) in terms of standard deviations. It helps identify extreme price movements.
Customizable Parameters: Traders can adjust key parameters such as the Z-Score threshold, the type of MA (e.g., SMA, EMA), and the length of the moving average to suit their trading preferences.
Signal Options: The indicator offers flexibility in terms of signaling. Traders can choose whether to trigger signals when the Z-Score crosses the specified threshold or when it moves away from the threshold.
Visual Signals : Z-Score conditions are represented visually on the chart with color-coded background highlights. Overbought conditions are marked with a red background, while oversold conditions are indicated with a green background.
Information Table: A dynamic information table displays essential details, including the MA type, MA length, MA value, standard deviation, current price, and Z-Score. This information table helps traders make informed decisions.
Usefulness:
Overbought and Oversold Signals: Z-Score is particularly valuable for identifying overbought and oversold market conditions. Traders can use this information to potentially enter or exit positions.
Statistical Analysis: The Z-Score provides a statistical measure of price deviation, offering a data-driven approach to market analysis.
Customization: Traders can customize the indicator to match their trading strategies and preferences, enhancing its adaptability to different trading styles.
Visual Clarity: The visual signals make it easy for traders to quickly spot potential trade opportunities on the price chart.
In summary, the Z-Score indicator is a valuable tool for traders looking to incorporate statistical analysis into their trading strategies. Its customizability, visual signals, and unique statistical approach make it an exceptional choice for identifying overbought and oversold market conditions and potential trading opportunities.
3x MTF MACD v3.0MACD's on 3 different Time Frames
Indicator Information
- Each Time Frame shows start of Trend and end of trend of the MACD vs the Signal Cross
- They are labled 1,2,3 with respective up or down triangle for possible direction.
User Inputs
- configure the indicator by specifying various inputs. These inputs include colors for bullish
and bearish conditions, the time frame to use, whether to show a Simple Moving Average
(SMA) line, and other parameters.
- Users can choose time frames for analysis (like 30 minutes, 1 hour, etc.)
but they must be in mintues.
- The code also allows users to customize how the indicator looks on the chart by providing
options for position and color.
Main Calculations
- The script calculates the Simple Moving Average (SMA) based on the user-defined time
frame.
- It then determines the color of the plot (line) based on certain conditions, such as whether
the SMA is rising or falling. These conditions help users quickly identify market trends.
Label Creation
- The code creates labels that can be displayed on the chart.
These labels indicate whether there's a bullish or bearish signal.
Level Detection
- The script determines and labels key levels or points of interest in the chart based on
certain conditions.
- It can show labels like "①" and "▲" for bullish conditions and "▼" for bearish conditions.
Table Display
- There's an option to show a table on the chart that displays information about the MACD
indicator Chosen and the NUmber Bubble assocated with that time frame
- The table can include information like which time frame is being analyzed, whether the SMA
line is shown, and other relevant data.
Plotting on the Chart
- The script plots the Simple Moving Average (SMA) on the chart. The color of this line
changes based on the calculated trend conditions.
ATR (Average True Range)
- The script also plots the Average True Range (ATR) on the chart. ATR is used to measure
market volatility.
"In essence, this script is a highly customizable MACD and SMA indicator for traders. It assists traders in comprehending market trends, offering insights into different MACD cycles concerning various timeframes.
Users can configure it to match their trading strategies, and it presents information in a user-friendly manner with colors, labels, and tables.
This simplifies market analysis, allowing traders to make more informed decisions without the distraction of multiple indicators."
Quadratic & Linear Time Series Regression [SS]Hey everyone,
Releasing the Quadratic/Linear Time Series regression indicator.
About the indicator:
Most of you will be familiar with the conventional linear regression trend boxes (see below):
This is an awesome feature in Tradingview and there are quite a few indicators that follow this same principle.
However, because of the exponential and cyclical nature of stocks, linear regression tends to not be the best fit for stock time series data. From my experience, stocks tend to fit better with quadratic (or curvlinear) regression, which there really isn't a lot of resources for.
To put it into perspective, let's take SPX on the 1 month timeframe and plot a linear regression trend from 1930 till now:
You can see that its not really a great fit because of the exponential growth that SPX has endured since the 1930s. However, if we take a quadratic approach to the time series data, this is what we get:
This is a quadratic time series version, extended by up to 3 standard deviations. You can see that it is a bit more fitting.
Quadratic regression can also be helpful for looking at cycle patterns. For example, if we wanted to plot out how the S&P has performed from its COVID crash till now, this is how it would look using a linear regression approach:
But this is how it would look using the quadratic approach:
So which is better?
Both linear regression and quadratic regression are pivotal and important tools for traders. Sometimes, linear regression is more appropriate and others quadratic regression is more appropriate.
In general, if you are long dating your analysis and you want to see the trajectory of a ticker further back (over the course of say, 10 or 15 years), quadratic regression is likely going to be better for most stocks.
If you are looking for short term trades and short term trend assessments, linear regression is going to be the most appropriate.
The indicator will do both and it will fit the linear regression model to the data, which is different from other linreg indicators. Most will only find the start of the strongest trend and draw from there, this will fit the model to whatever period of time you wish, it just may not be that significant.
But, to keep it easy, the indicator will actually tell you which model will work better for the data you are selecting. You can see it in the example in the main chart, and here:
Here we see that the indicator indicates a better fit on the quadratic model.
And SPY during its recent uptrend:
For that, let's take a look at the Quadratic Vs the Linear, to see how they compare:
Quadratic:
Linear:
Functions:
You will see that you have 2 optional tables. The statistics table which shows you:
The R Squared to assess for Variance.
The Correlation to assess for the strength of the trend.
The Confidence interval which is set at a default of 1.96 but can be toggled to adjust for the confidence reading in the settings menu. (The confidence interval gives us a range of values that is likely to contain the true value of the coefficient with a certain level of confidence).
The strongest relationship (quadratic or linear).
Then there is the range table, which shows you the anticipated price ranges based on the distance in standard deviations from the mean.
The range table will also display to you how often a ticker has spent in each corresponding range, whether that be within the anticipated range, within 1 SD, 2 SD or 3 SD.
You can select up to 3 additional standard deviations to plot on the chart and you can manually select the 3 standard deviations you want to plot. Whether that be 1, 2, 3, or 1.5, 2.5 or 3.5, or any combination, you just enter the standard deviations in the settings menu and the indicator will adjust the price targets and plotted bands according to your preferences. It will also count the amount of time the ticker spent in that range based on your own selected standard deviation inputs.
Tips on Use:
This works best on the larger timeframes (1 hour and up), with RTH enabled.
The max lookback is 5,000 candles.
If you want to ascertain a longer term trend (over years to months), its best to adjust your chart timeframe to the weekly and/or monthly perspective.
And that's the indicator! Hopefully you all find it helpful.
Let me know your questions and suggestions below!
Safe trades to all!
Market Open - Relative VolumeThe indicator calculates the Pre-market volume percentage of the current day, relative to the average volume being traded in the trading session (14 days), displayed in Table Row 1, Table Cell 1, as V%. Pre-market volume between 15% & 30% has a orange background color. Pre-market volume percentage above 30% has a green background color.
The indicator calculates the relative volume per candle relative to the average volume being traded in that time period (14 days) (e.g., "1M," "2M," up to "5M"), displayed in a table. Relative volume between 250% & 350% has a orange background color. Relative volume above 350% has a green background color.
FYI >> Indicator calculations are per candle, not time unit (due to pine script restrictions). Meaning, the indicator current table data is only accurate in the 1M chart. If you are using the indicator in a higher timeframe, e.g., on the 5M chart, then the values in table cells >> (1M value == relative volume of the first 5-minute candle) (5M value = relative volume of the first five 5-minute candles) and so on. (Future versions will have a dynamic table).
RSI Screener Multi Timeframe [5ema]This indicator is the simple version of my indicator: RSI Screener and Divergence .
Only show table with values, signals at 5 custom timeframes.
-----
I reused some functions, made by (i believe that):
©paaax: The table position function.
@kingthies: The RSI divergence function.
@QuantNomad: The function calculated value and array screener for 40+ instruments.
I have commented in my code. Thanks so much!
-----
How it works:
1. Input :
Length of RSI => calculate RSI.
Upper/lower => checking RSI overbought/oversold.
Right bars / left bars => returns price of the pivot low & high point => checking divergence.
Range upper / lower bars => compare the low & high point => checking divergence.
Timeframe => request.security another time frame.
Table position => display screener table.
2. Input bool:
Regular Bearish divergence.
Hidden Bullish divergence .
Hidden Bearish divergence.
3. Basic calculated:
Make function for RSI , pivot low & high point of RSI and price.
Request.security that function for earch time frame.
Result RSI, Divergence.
4. Condition of signal:
Buy condition:
RSI oversold (1)
Bullish divergence (2).
=> Buy if (1) and (2), review buy (1) or (2).
Sell condition:
RSI overbought (3).
Bearish divergence (4).
=> Sell if (3) and (4), review sell (3) or (4).
-----
Table screener:
Time frame.
RSI (green - oversold, red - overbought)
Divergence (>> - regular bullish , << regular bearish , > - hidden bullish , < - hidden bearish ).
Signal (green ⦿ - Buy, red ⦿ - Sell, green 〇 - review buy, red 〇 - review sell).
- Regular Bearish divergence:
- Regular Bullish divergence:
- Regular Bullish divergence + RSI overSold
- Regular Bearish divergence + RSI overBought
-----
This indicator is for reference only, you need your own method and strategy.
If you have any questions, please let me know in the comments.
Price Range Volume Profile [Pt]█ Introduction
The Price Range Volume Profile (PRVP) is a revolutionary indicator. This tool stands out from its peers due to its unique ability to capture the entire price chart history, thus providing a comprehensive volume profile of the entire asset's trading history, as available on TradingView chart. It's worth noting that I believe this tool is the first of its kind to accomplish such a feat. A much recommended tool if you are a volume profile trader.
█ Main Features
► Historical Lookback: This feature dives deep into the past, grasping all the historical data of an asset. It's equipped to handle up to 20,000 bars, although users without a premium TradingView account are advised to keep it at a maximum of 10,000 bars, or just use the "Full Historical Lookback" feature.
► Volume Profile / POC: Displays the distribution of volume across price levels for the selected price range. The Point of Control (POC), which is the price level with the highest traded volume, is also highlighted.
► Customization: Users have the flexibility to adjust the profile's appearance, including profile width, horizontal offset, and the option to fill the background of the profile range.
► Time Weighting: This feature allows users to give more weight to recent trading activity, which can be especially useful for intraday traders or during times of high volatility. Note that this feature will impact the volume profile and POC level.
► Settings Table: A settings table is displayed on the chart for users to quickly reference their input parameters.
█ Input Parameters
► Lookback Timeframe: Determines the period for which the volume profile is generated.
► Price Range: The percentage distance to consider for the profile, adjusted above and below the current closing price.
► Profile Step size: The granularity of the volume profile. Users can opt for automatic step size based on a predefined calculation or set their preferred tick step size.
► Historical Bars Lookback: Determines the number of bars to include in the volume profile calculation.
► Profile Visuals: Adjust the appearance and layout of the volume profile on the chart.
► Extra: Additional settings including the display of a settings table and its location.
█ Basic Understanding of Volume Profile - How to use PRVP?
Volume Profile is a valuable tool for traders who want insights into where the majority of trading activity has occurred. Here are some tips to make the most of it:
► Understand the Basics: Before using the Volume Profile, ensure you understand the difference between it and the standard volume histogram. While both represent volume, the former displays it against price while the latter shows it against time.
► Identify High Volume Nodes (HVN) and Low Volume Nodes (LVN):
◊ HVN: Areas where there's a lot of trading activity and where the price has spent a lot of time. These areas can act as strong support or resistance.
◊ LVN: Areas where there's a lack of trading activity. Prices might move quickly through these areas, and they can act as potential breakpoints or accelerators for price movement.
► Locate the Point of Control (POC): This is the price level with the highest traded volume for a specified period. It often acts as a magnet for price, and it can serve as a pivot or reference point.
► Trend Confirmation: A shift in the volume profile from one price level to another can confirm a trend. For instance, if higher volume starts to build at higher price levels, it may indicate a strong uptrend.
► Watch for Volume Gaps: If there's a significant gap in the volume profile, prices may move quickly through these levels as there's little historical trading activity to act as support or resistance.
█ Other Usage Tips
◊ For optimal performance, ensure that the chosen timeframe aligns closely with the chart timeframe. Differences in timeframes may lead to minor discrepancies in the volume profile.
◊ To address any errors arising from too many levels displayed on the volume profile, consider increasing the Profile Step size or reducing the Price Range.
AI-Bank-Nifty Tech AnalysisThis code is a TradingView indicator that analyzes the Bank Nifty index of the Indian stock market. It uses various inputs to customize the indicator's appearance and analysis, such as enabling analysis based on the chart's timeframe, detecting bullish and bearish engulfing candles, and setting the table position and style.
The code imports an external script called BankNifty_CSM, which likely contains functions that calculate technical indicators such as the RSI, MACD, VWAP, and more. The code then defines several table cell colors and other styling parameters.
Next, the code defines a table to display the technical analysis of eight bank stocks in the Bank Nifty index. It then defines a function called get_BankComponent_Details that takes a stock symbol as input, requests the stock's OHLCV data, and calculates several technical indicators using the imported CSM_BankNifty functions.
The code also defines two functions called get_EngulfingBullish_Detection and get_EngulfingBearish_Detection to detect bullish and bearish engulfing candles.
Finally, the code calculates the technical analysis for each bank stock using the get_BankComponent_Details function and displays the results in the table. If the engulfing input is enabled, the code also checks for bullish and bearish engulfing candles and displays buy/sell signals accordingly.
The FRAMA stands for "Fractal Adaptive Moving Average," which is a type of moving average that adjusts its smoothing factor based on the fractal dimension of the price data. The fractal dimension reflects self-similarity at different scales. The FRAMA uses this property to adapt to the scale of price movements, capturing short-term and long-term trends while minimizing lag. The FRAMA was developed by John F. Ehlers and is commonly used by traders and analysts in technical analysis to identify trends and generate buy and sell signals. I tried to create this indicator in Pine.
In this context, "RS" stands for "Relative Strength," which is a technical indicator that compares the performance of a particular stock or market sector against a benchmark index.
The "Alligator" is a technical analysis tool that consists of three smoothed moving averages. Introduced by Bill Williams in his book "Trading Chaos," the three lines are called the Jaw, Teeth, and Lips of the Alligator. The Alligator indicator helps traders identify the trend direction and its strength, as well as potential entry and exit points. When the three lines are intertwined or close to each other, it indicates a range-bound market, while a divergence between them indicates a trending market. The position of the price in relation to the Alligator lines can also provide signals, such as a buy signal when the price crosses above the Alligator lines and a sell signal when the price crosses below them.
In addition to these, we have several other commonly used technical indicators, such as MACD, RSI, MFI (Money Flow Index), VWAP, EMA, and Supertrend. I used all the built-in functions for these indicators from TradingView. Thanks to the developer of this TradingView Indicator.
I also created a BankNifty Components Table and checked it on the dashboard.
Candle Counter [theEccentricTrader]█ OVERVIEW
This indicator counts the number of confirmed candle scenarios on any given candlestick chart and displays the statistics in a table, which can be repositioned and resized at the user's discretion.
█ CONCEPTS
Green and Red Candles
A green candle is one that closes with a high price equal to or above the price it opened.
A red candle is one that closes with a low price that is lower than the price it opened.
Upper Candle Trends
A higher high candle is one that closes with a higher high price than the high price of the preceding candle.
A lower high candle is one that closes with a lower high price than the high price of the preceding candle.
A double-top candle is one that closes with a high price that is equal to the high price of the preceding candle.
Lower Candle Trends
A higher low candle is one that closes with a higher low price than the low price of the preceding candle.
A lower low candle is one that closes with a lower low price than the low price of the preceding candle.
A double-bottom candle is one that closes with a low price that is equal to the low price of the preceding candle.
█ FEATURES
Inputs
Start Date
End Date
Position
Text Size
Show Sample Period
Show Plots
Table
The table is colour coded, consists of three columns and twenty-two rows. Blue cells denote all candle scenarios, green cells denote green candle scenarios and red cells denote red candle scenarios.
The candle scenarios are listed in the first column with their corresponding total counts to the right, in the second column. The last row in column one, row twenty-two, displays the sample period which can be adjusted or hidden via indicator settings.
Rows two and three in the third column of the table display the total green and red candles as percentages of total candles. Rows four to nine in column three, coloured blue, display the corresponding candle scenarios as percentages of total candles. Rows ten to fifteen in column three, coloured green, display the corresponding candle scenarios as percentages of total green candles. And lastly, rows sixteen to twenty-one in column three, coloured red, display the corresponding candle scenarios as percentages of total red candles.
Plots
I have added plots as a visual aid to the various candle scenarios listed in the table. Green up-arrows denote higher high candles when above bar and higher low candles when below bar. Red down-arrows denote lower high candles when above bar and lower low candles when below bar. Similarly, blue diamonds when above bar denote double-top candles and when below bar denote double-bottom candles. These plots can also be hidden via indicator settings.
█ HOW TO USE
This indicator is intended for research purposes and strategy development. I hope it will be useful in helping to gain a better understanding of the underlying dynamics at play on any given market and timeframe. It can, for example, give you an idea of any inherent biases such as a greater proportion of green candles to red. Or a greater proportion of higher low green candles to lower low green candles. Such information can be very useful when conducting top down analysis across multiple timeframes, or considering trailing stop loss methods.
What you do with these statistics and how far you decide to take your research is entirely up to you, the possibilities are endless.
This is just the first and most basic in a series of indicators that can be used to study objective price action scenarios and develop a systematic approach to trading.
█ LIMITATIONS
Some higher timeframe candles on tickers with larger lookbacks such as the DXY, do not actually contain all the open, high, low and close (OHLC) data at the beginning of the chart. Instead, they use the close price for open, high and low prices. So, while we can determine whether the close price is higher or lower than the preceding close price, there is no way of knowing what actually happened intra-bar for these candles. And by default candles that close at the same price as the open price, will be counted as green. You can avoid this problem by utilising the sample period filter.
The green and red candle calculations are based solely on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with. Alternatively, you can replace the scenarios with your own logic to account for the gap anomalies, if you are feeling up to the challenge.
It is also worth noting that the sample size will be limited to your Trading View subscription plan. Premium users get 20,000 candles worth of data, pro+ and pro users get 10,000, and basic users get 5,000. If upgrading is currently not an option, you can always keep a rolling tally of the statistics in an excel spreadsheet or something of the like.
RSI Screener and Divergence [5ema]
Displayed on the RSI chart according to a custom timeframe.
Displays the RSI tracking table of various timeframes.
Identify normal divergence, hidden divergence on RSI chat.
Show buy and sell signals (strong, weak) on the board.
Send notifications when RSI has a buy or sell signal.
-----
I reused some functions, made by (i believe that):
©paaax : The table position function.
@everget : The RSI divergence function.
@QuantNomad : The function calculated value and array to show on table for input symbols.
I have commented in my code. Thanks so much!
-----
How it works:
1. Input :
input.int length of RSI => calculate RSI.
input.int upper/lower => checking RSI overbought/oversold.
input.int right bars / left bars => returns price of the pivot low & high point => checking divergence.
input.int range upper / lower bars => compare the low & high point => checking divergence.
input.timeframe => request.security another time frame.
input.string table position => display screener table.
2. Input bool:
plot RSI on chart.
Plot Regular Bullish divergence .
Regular Bearish divergence.
Hidden Bullish divergence .
Hidden Bearish divergence.
3. Basic calculated:
Make function for RSI , pivot low & high point of RSI and price.
Request.security that function for earch time frame.
Result RSI, Divergence.
4. Condition of signal:
Buy condition:
RSI oversold (1)
Bullish divergence (2).
=> Buy if (1) and (2), review buy (1) or (2).
Sell condition:
RSI overbought (3).
Bearish divergence (4).
=> Sell if (3) and (4), review sell (3) or (4).
5. Table screener:
Time frame.
RSI (green - oversold, red - overbought)
Divergence (⬈⬈ - regular bullish , ⬊⬊ regular bearish , ⬊ - hidden bullish , ⬈ - hidden bearish ).
Signal (🟢 - Buy, 🔴 - sell, green 〇 - review buy, red 〇 - review sell)
----
This indicator is for reference only, you need your own method and strategy.
If you have any questions, please let me know in the comments.
SUPER MULTI MOVING AVERAGE [Gabbo]📈 Moving Average Indicator Update - Version 2
🔹 New Features and Improvements:
1️⃣ Enhanced MA Selection for Table Lines:
Previously, the indicator did not allow users to choose a different Moving Average type for the table lines. Now, you can select the MA type for the table.
2️⃣ New Table Text Customization Inputs:
Added inputs to choose the table text color and size for a more personalized display.
3️⃣ Improved Input Visibility and Organization:
We’ve reorganized the inputs so that the most commonly used options are now placed at the beginning for quicker and more convenient configuration.
4️⃣ Bug Fixes and Code Improvements:
Minor bugs have been fixed, and the code has been optimized for improved stability and performance. The code is now cleaner and fully functional in version 6.
5️⃣ Cometreon Public Library Integration:
To lighten the code and improve modularity, we’ve integrated the Cometreon public library. This makes the code more efficient and reduces the need to duplicate common functions.
☄️ With this update, the Moving Average indicator becomes even more versatile and user-friendly, offering a refined table interface and enhanced customization options!
ConsoleLibrary "Console"
█ OVERVIEW
An easy way to output messages to a console like table using a a simple "print" function that can be called from anywhere in your code including functions.
█ Supports:
- Scrollable console messages
- Customisable number of displayed messages
- More than one "console" for different types of output if required
- The ability to choose which message to start viewing from (useful if the message list is long)
- The ability to place the console table at different positions on the chart to mitigate against
overwriting an existing table.
█ Limitations:
The "scrollbar" handle is actually a modified time widget handle. As the handle is grabbed and moved left or right across the chart bars, this script calculates the offset of the bar being pointed to from the last bar in the chart and uses that as the console message offset. However, It isn't possible to position this on the last chart bar with code.
So there are two solutions:
1) Manually change timestamp of the variable scrollStart to the current time (roughly)
eg. scrollStart = "25 Dec 2022 14:30 +0000"
2) Use a higher timeframe (Weeks or Months) and visually find the scroll bar. If it is to the right of the chart bars the console output will read NaN. Grab the handle and move it left and it will snap to the last chart candle position. If it is to the left then find it and move it to the right as needed.
█ Notes On Usage
- Import the library as console (the call will be console.print(...) )
- Assign a console variable name and call the console.initialise function
eg. var con1=console.initialise()
- Use the console.print() function to print a message or messages
This takes two parameters:
_consoleName :this is the console name you are printing to
_message: this is the message that you want to display. It is a string and can be built in the normal way using any pinescript string functions like str.tostring() etc
- Use the console.display function to display the messages.
To work as intended this display function should be placed at the last line with the following code
if i_showMessages
....if i_displayTable == "con1"
........display(con1, i_lineOffset, i_rowsToDisplay, i_gotoMsg, posn)
(More "consoles" can be written to and the example code provided with the library shows this in more detail. Also, the indents don't show in these notes)
Lastly, placement of a console.print() without a qualifying "if" statement will occur for every bar. This may be desired. If not then use under an if statement (example in the supplied code).
Happy debugging :)
-----------------------------------------------------------------------------------------------------------
initialise()
initialise: creates the message array
Parameters:
none :
Returns: message array: this is assigned to the "console" identifier
print(_consoleName, _message)
used to output the desired text string to the console
Parameters:
_consoleName : : the message array
_message : : the console message
Returns: none
display(_consoleName, _lineOffset, _rowsToDisplay, _gotoMsg, _posn)
display: placed in the last section of code. Displays the console messages
Parameters:
_consoleName : : the message array
_lineOffset : : the setting of the scroll bar (time widget)
_rowsToDisplay : : how many rows to show in the console table
_gotoMsg : : which message to display from (default is 0)
_posn : : where the console table will be displayed
Returns: none
Auto Support & Resistance With Wick Signals & Percentage GapsThis auto support and resistance indicator uses percentage deviations from the previous session close to calculate levels. It provides arrows as signals when it detects 2 wicks in the last 5 bars from a support or resistance level. Includes alerts for price crossing any level as well as real time percentage gaps from current price to the next closest support and resistance level. You also have the option to set up to 3 major levels of your own for any levels that are very important on longer timeframes that you want included. Those will show on the chart as well as within your percentage gap table with color coded background. All features can be customized or turned off to suit your preferences.
SOURCE
This indicator uses the previous session close as a source by default but can be adjusted to use the previous session high or the previous session low. I find the close setting to provide the most accurate levels.
SESSION
The default setting for the previous session used is the daily session but can be adjusted to use the daily, weekly, monthly, quarterly or yearly session. Use longer sessions when looking at longer time frame charts.
SIGNALS
The signals by default are set to only show an arrow if there have been 2 bullish or bearish wicks off of a support or resistance level in the last 5 bars. This can be changed to one bullish wick off of support and one bearish wick off of resistance or it can be set to give a signal anytime a bar crosses a support or resistance level. This can be controlled in the indicator settings.
PERCENTAGE DEVIATION LEVELS
The default percentage deviation is set to 1% but can and should be adjusted according to whatever ticker you are using. For example use .25% or .5% when looking at forex intraday charts since they are not as volatile as other markets. For leveraged etfs used 1% multiplied by the leverage on the etf, so for SQQQ use 3% as it is a 3x leveraged etf. When looking at longer timeframes or highly volatile charts, set the percentage deviation to 2%, 5%, 10%, etc.
LINE COLORS
The color of the lines will change from red to green depending on if the price is above or below that level. You can customize these colors in the settings.
MAJOR LEVELS
If you have major levels of support and resistance from longer timeframes and your own charting, you can add up to 3 major levels that will show on the chart as well as show the percentage gaps in the table. The label for each major level will be colored to match the color of the line on the chart individually.
PERCENTAGE GAP TABLE
The gap table will update live with percentages to go from current price to the next closest support and resistance levels so you don’t have to calculate them manually. The position of the percentage gap table can also be changed within the indicator settings.
TURN FEATURES ON/OFF
There are 3 toggle switches so you can easily turn on or off certain features such as: the support and resistance lines, the percentage gaps table and the arrow signals.
LINE WIDTHS
You can also set the line width of all levels and the line width of the starting level within the indicator settings.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This automatic support and resistance indicator can be used on all timeframes as long as there is enough data for the session used.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Volume Spike Scanner, Volume Profile, Momentum and Trend Friend in combination with this auto support and resistance indicator. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
Volatility Adjusted Grid [Gann]█ OVERVIEW
Gann Square of 9 is one of the many brilliant concepts from W.D.Gann himself where it revolves around the idea that price is moving in a certain geometrical pattern. Numbers on the Square of 9 spiral tables, especially those lie in every 45degree in the chart act as key vibration levels where prices have tendency to react to (more on the table below).
There are few square of 9 related scripts here in Tradingview and while there's nothing wrong with them, it doesn't address 1 particular issue that i have: The numbers can be too rigid even when scaled based on current price because the levels are fixed, which makes them not tradable on certain timeframes depending on where the price currently sitting.
Heres 5min and 1hour Bitcoin chart to illustrate what i mean: Grey line on the left is based on Volatility Adjusted levels, while red/blue on the right are the standard Gann levels.
You can see that on 1hour chart, it provides a good levels (both Volatility Adjusted and the standard one happened to share the same multiplier in this case),
1Hour Chart:
On 5 min chart tells a different story as the range between blue/red levels can be deemed as to big for a short term trade, while the grey line is adjusted to suit that particular timeframe (You can still adjust to make it bigger/smaller from the settings, more on this below)
5Min Chart:
█ Little bit on Gann Square of 9 table
This is the square of nine table, the numbers highlighted in Red are known as Cardinal Cross and considered to be a major Support/Resistance while those in Blue color are known as Ordinal Cross considered as minor (but still important) Support/Resistance levels
Similarly, this script use these numbers (and certain multipliers) to print out the levels, with Cardinal numbers represented by solid lines and Ordinal numbers by dotted lines.
█ How it Works and Limitations
The Volatility Adjusted grid will go through several iterations of different multipliers to find the Gann number range that is at least bigger than times ATR. Because it's using ATR to determine the range, occasionally you'll notice that the line become smaller as ATR contracting (and vice versa). To overcome this, you can change the size range multiplier from the settings to retrieve the previous range size.
Use the size guide at the bottom left to find the multiplier that suits your need:
1st Row -> Previous Range -- Change Range Size to number lower than this to get a smaller range
2nd Row -> Next Range -- Change Range Size to number higher than this to get a larger range
Example:
Before:
After:
As you'll soon realise, the key here is to find the range that fits the historical structure and suits your own strategy. Enjoy :)
█ Disclaimer
Past performance is not an indicator of future results.
My opinions and research are my own and do not constitute financial advice in any way whatsoever.
Nothing published by me constitutes an investment recommendation, nor should any data or Content published by me be relied upon for any investment/trading activities.
I strongly recommends that you perform your own independent research and/or speak with a qualified investment professional before making any financial decisions.
Any ideas to further improve this indicator are welcome :)
Logging in Pine ScriptI'm building quite a lot of pretty complicated indicators/strategies in Pine Script. Quite often they don't work from the 1 try so I have to debug them heavily.
In Pine Script there are no fancy debuggers so you have to be creative. You can plot values on your screens, check them in the data window, etc.
If you want to display some textual information, you can plot some info as labels on the screen.
It's not the most convenient way, so with the appearance of tables in Pine Script, I decided to implement a custom logger that will allow me to track some useful information about my indicator over time.
Tables work much better for this kind of thing than labels. They're attached to your screen, you can nicely scale them and you can style them much better.
The idea behind it is very simple. I used few arrays to store the message, bar number, timestamp, and type of the message (you can color messages depend on the type for example).
There is a function log_msg that just append new messages to these arrays.
In the end, for the last bar, I create the table and display the last X messages in it.
In parameters, you can show/hide the entire journal, change the number of messages displayed and choose an offset. With offset, you can basically scroll through the history of messages.
Currently, I implemented 3 types of messages, and I color messages according to these types:
Message - gray
Warning - yellow
Error - red
Of course, it's a pretty simple example, you can create a much fancier way of styling your logs.
What do you think about it? Is it useful for you? What do you use to debug code in Pine Script?
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Daily GAP StatsI did not write the script from scratch but rather started editing code of an existing one. The original code came from a script called GAP DETECTOR by @Asch-
First up: I am a trader, not a programmer and therefore my code most likely is inefficient. If someone with more expertise would like to help and optimize it - feel free to get in touch, I am always happy to learn some new tricks. :)
This script does 2 things:
- It shows daily gaps stats based on user inputs
- It shows color coded labels on gap days with additional information in tooltips ( important: make sure to read 'known issues/limitations' at the end )
User Inputs
==========
Although the input dialog is pretty straight forward, I do a quick rundown:
- Length: max lookback time
- Gap Direction: self explanatory
- Show All Gaps | Cont Only | Reversal Only | Off:
This refers to the way labels are displayed on gap days (again: make sure to read known issues/limitations!)
- Show All Gaps: does what it says
- Cont Only: only shows gaps where price continued in the gap direction. If you filter for gap ups and chose 'Cont only' you will only see labels on gap days where price closed above the open (and vice versa if you scan for gap downs).
- Reversal Only: you will only see labels for closes below the open on gap up days (and the opposite on gap down days)
- Off: self explanatory
- Gap Measure in ATR/PCT: self explanatory, ATR is calculated over a 10d period
- Gap Size (Abs Values): no negative values allowed here. If you filter for gap downs and enter 3 it means it will show gaps where the stock fell more than 3 ATR/PCT on the open.
- RVOL Factor: along with significant gaps should come significant volume. RVOL = volume of the gap day / 20d average volume
- Viewing Options: Placing the stats label in the window is a bit tricky (see knonw issues/limitations) and I was not sure which way I liked better. See for yourself what works best for you.
Known Isusses/Limitations:
=======================
- Positioning of the stats table:
As to my knowledge, Tradingview only allows label positioning relative to price and not relative to the chart window. I tried to always display the gap stats table in the upper right corner, using 52wk high as y-coordinate. This works ok most of the time, but is not pretty. If anybody has some fancy way to tag the label in a fixed position, please get in touch.
- Max number of labels per script:
TradingView has a limitation that allows a maxium of ~50 labels per script. If there are more labels, TradingView will automatically cut the oldest ones, without any notification. I have found this behaviour to be rather inconsistent - sometimes it'll dump labels even if there are a lot fewer than 50. Hopefully TradingView will drop this limitation at one point in the future.
Important: The inconsistent display of the gap day labels has NO INFLUENCE on the calculations in the gap stats table - the count and the calculations are complete and correct!
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
Adaptive Valuation [BackQuant]Adaptive Valuation
What this is
A composite, zero-centered oscillator that standardizes several classic indicators and blends them into one “valuation” line. It computes RSI, CCI, Demarker, and the Price Zone Oscillator, converts each to a rolling z-score, then forms a weighted average. Optional smoothing, dynamic overbought and oversold bands, and an on-chart table make the inputs and the final score easy to inspect.
How it works
Components
• RSI with its own lookback.
• CCI with its own lookback.
• DM (Demarker) with its own lookback.
• PZO (Price Zone Oscillator) with its own lookback.
Standardization via z-score
Each component is transformed using a rolling z-score over lookback bars:
z = (value − mean) ÷ stdev , where the mean is an EMA and the stdev is rolling.
This puts all inputs on a comparable scale measured in standard deviations.
Weighted blend
The z-scores are combined with user weights w_rsi, w_cci, w_dm, w_pzo to produce a single valuation series. If desired, it is then smoothed with a selected moving average (SMA, EMA, WMA, HMA, RMA, DEMA, TEMA, LINREG, ALMA, T3). ALMA’s sigma input shapes its curve.
Dynamic thresholds (optional)
Two ways to set overbought and oversold:
• Static : fixed levels at ob_thres and os_thres .
• Dynamic : ±k·σ bands, where σ is the rolling standard deviation of the valuation over dynLen .
Bands can be centered at zero or around the valuation’s rolling mean ( centerZero ).
Visualization and UI
• Zero line at 0 with gradient fill that darkens as the valuation moves away from 0.
• Optional plotting of band lines and background highlights when OB or OS is active.
• Optional candle and background coloring driven by the valuation.
• Summary table showing each component’s current z-score, the final score, and a compact status.
How it can be used
• Bias filter : treat crosses above 0 as bullish bias and below 0 as bearish bias.
• Mean-reversion context : look for exhaustion when the valuation enters the OB or OS region, then watch for exits from those regions or a return toward 0.
• Signal confirmation : use the final score to confirm setups from structure or price action.
• Adaptive banding : with dynamic thresholds, OB and OS adjust to prevailing variability rather than relying on fixed lines.
• Component tuning : change weights to emphasize trend (raise DM, reduce RSI/CCI) or range behavior (raise RSI/CCI, reduce DM). PZO can help in swing environments.
Why z-score blending helps
Indicators often live on different scales. Z-scoring places them on a common, unitless axis, so a one-sigma move in RSI has comparable influence to a one-sigma move in CCI. This reduces scale bias and allows transparent weighting. It also facilitates regime-aware thresholds because the dynamic bands scale with recent dispersion.
Inputs to know
• Component lookbacks : rsilb, ccilb, dmlb, pzolb control each raw signal.
• Standardization window : lookback sets the z-score memory. Longer smooths, shorter reacts.
• Weights : w_rsi, w_cci, w_dm, w_pzo determine each component’s influence.
• Smoothing : maType, smoothP, sig govern optional post-blend smoothing.
• Dynamic bands : dyn_thres, dynLen, thres_k, centerZero configure the adaptive OB/OS logic.
• UI : toggle the plot, table, candle coloring, and threshold lines.
Reading the plot
• Above 0 : composite pressure is positive.
• Below 0 : composite pressure is negative.
• OB region : valuation above the chosen OB line. Risk of mean reversion rises and momentum continuation needs evidence.
• OS region : mirror logic on the downside.
• Band exits : leaving OB or OS can serve as a normalization cue.
Strengths
• Normalizes heterogeneous signals into one interpretable series.
• Adjustable component weights to match instrument behavior.
• Dynamic thresholds adapt to changing volatility and drift.
• Transparent diagnostics from the on-chart table.
• Flexible smoothing choices, including ALMA and T3.
Limitations and cautions
• Z-scores assume a reasonably stationary window. Sharp regime shifts can make recent bands unrepresentative.
• Highly correlated components can overweight the same effect. Consider adjusting weights to avoid double counting.
• More smoothing adds lag. Less smoothing adds noise.
• Dynamic bands recalibrate with dynLen ; if set too short, bands may swing excessively. If too long, bands can be slow to adapt.
Practical tuning tips
• Trending symbols: increase w_dm , use a modest smoother like EMA or T3, and use centerZero dynamic bands.
• Choppy symbols: increase w_rsi and w_cci , consider ALMA with a higher sigma , and widen bands with a larger thres_k .
• Multiday swing charts: lengthen lookback and dynLen to stabilize the scale.
• Lower timeframes: shorten component lookbacks slightly and reduce smoothing to keep signals timely.
Alerts
• Enter and exit of Overbought and Oversold, based on the active band choice.
• Bullish and bearish zero crosses.
Use alerts as prompts to review context rather than as stand-alone trade commands.
Final Remarks
We created this to show people a different way of making indicators & trading.
You can process normal indicators in multiple ways to enhance or change the signal, especially with this you can utilise machine learning to optimise the weights, then trade accordingly.
All of the different components were selected to give some sort of signal, its made out of simple components yet is effective. As long as the user calibrates it to their Trading/ investing style you can find good results. Do not use anything standalone, ensure you are backtesting and creating a proper system.
Global Bond Yields Monitor [MarktQuant]Global Bond Yields Monitor
The Global Bond Yields Monitor is designed to help users track and compare government bond yields across major economies. It provides an at-a-glance view of short- and long-term interest rates for multiple countries, enabling users to observe shifts in global fixed-income markets.
Key Features:
Multi-Country Coverage: Includes major advanced and emerging economies such as the United States, China, Japan, Germany, United Kingdom, Canada, Australia, and more.
Multiple Maturities: Displays yields for the 2-year, 5-year, 10-year, and 30-year maturities (20-year for Russia).
Dynamic Yield Data: Plots real-time yields for the selected country directly from TradingView’s data sources.
Weekly Change Tracking: Calculates and displays the yield change from one week ago ( ) for each maturity.
Table Visualization: Option to display a compact data table showing current yields and weekly changes, color-coded for easier interpretation.
Visual Yield Curve Comparison: Plots yield lines for short- and long-term maturities, with shaded areas between curves for visual clarity.
Customizable Display: Choose table placement and whether to show or hide the weekly change table.
Use Cases
This script is intended for analysts, traders, and investors who want to monitor shifts in sovereign bond markets. Changes in yields can reflect adjustments in monetary policy expectations, inflation outlook, or broader macroeconomic trends.
❗Important Note❗
This indicator is for market monitoring and educational purposes only. It does not generate trading signals, and it should not be interpreted as financial advice. All data is sourced from TradingView’s available market feeds, and accuracy may depend on the source data.
Lorentzian Key Support and Resistance Level Detector [mishy]🧮 Lorentzian Key S/R Levels Detector
Advanced Support & Resistance Detection Using Mathematical Clustering
The Problem
Traditional S/R indicators fail because they're either subjective (manual lines), rigid (fixed pivots), or break when price spikes occur. Most importantly, they don't tell you where prices actually spend time, just where they touched briefly.
The Solution: Lorentzian Distance Clustering
This indicator introduces a novel approach by using Lorentzian distance instead of traditional Euclidean distance for clustering. This is groundbreaking for financial data analysis.
Data Points Clustering:
🔬 Why Euclidean Distance Fails in Trading
Traditional K-means uses Euclidean distance:
• Formula: distance = (price_A - price_B)²
• Problem: Squaring amplifies differences exponentially
• Real impact: One 5% price spike has 25x more influence than a 1% move
• Result: Clusters get pulled toward outliers, missing real support/resistance zones
Example scenario:
Prices: ← flash spike
Euclidean: Centroid gets dragged toward 150
Actual S/R zone: Around 100 (where prices actually trade)
⚡ Lorentzian Distance: The Game Changer
Our approach uses Lorentzian distance:
• Formula: distance = log(1 + (price_difference)² / σ²)
• Breakthrough: Logarithmic compression keeps outliers in check
• Real impact: Large moves still matter, but don't dominate
• Result: Clusters focus on where prices actually spend time
Same example with Lorentzian:
Prices: ← flash spike
Lorentzian: Centroid stays near 100 (real trading zone)
Outlier (150): Acknowledged but not dominant
🧠 Adaptive Intelligence
The σ parameter isn't fixed,it's calculated from market disturbance/entropy:
• High volatility: σ increases, making algorithm more tolerant of large moves
• Low volatility: σ decreases, making algorithm more sensitive to small changes
• Self-calibrating: Adapts to any instrument or market condition automatically
Why this matters: Traditional methods treat a 2% move the same whether it's in a calm or volatile market. Lorentzian adapts the sensitivity based on current market behavior.
🎯 Automatic K-Selection (Elbow Method)
Instead of guessing how many S/R levels to draw, the indicator:
• Tests 2-6 clusters and calculates WCSS (tightness measure)
• Finds the "elbow" - where adding more clusters stops helping much
• Uses sharpness calculation to pick the optimal number automatically
Result: Perfect balance between detail and clarity.
How It Works
1. Collect recent closing prices
2. Calculate entropy to adapt to current market volatility
3. Cluster prices using Lorentzian K-means algorithm
4. Auto-select optimal cluster count via statistical analysis
5. Draw levels at cluster centers with deviation bands
📊 Manual K-Selection Guide (Using WCSS & Sharpness Analysis)
When you disable auto-selection, use both WCSS and Sharpness metrics from the analysis table to choose manually:
What WCSS tells you:
• Lower WCSS = tighter clusters = better S/R levels
• Higher WCSS = scattered clusters = weaker levels
What Sharpness tells you:
• Higher positive values = optimal elbow point = best K choice
• Lower/negative values = poor elbow definition = avoid this K
• Measures the "sharpness" of the WCSS curve drop-off
Decision strategy using both metrics:
K=2: WCSS = 150.42 | Sharpness = - | Selected =
K=3: WCSS = 89.15 | Sharpness = 22.04 | Selected = ✓ ← Best choice
K=4: WCSS = 76.23 | Sharpness = 1.89 | Selected =
K=5: WCSS = 73.91 | Sharpness = 1.43 | Selected =
Quick decision rules:
• Pick K with highest positive Sharpness (indicates optimal elbow)
• Confirm with significant WCSS drop (30%+ reduction is good)
• Avoid K values with negative or very low Sharpness (<1.0)
• K=3 above shows: Big WCSS drop (41%) + High Sharpness (22.04) = Perfect choice
Why this works:
The algorithm finds the "elbow" where adding more clusters stops being useful. High Sharpness pinpoints this elbow mathematically, while WCSS confirms the clustering quality.
Elbow Method Visualization:
Traditional clustering problems:
❌ Price spikes distort results
❌ Fixed parameters don't adapt
❌ Manual tuning is subjective
❌ No way to validate choices
Lorentzian solution:
☑️ Outlier-resistant distance metric
☑️ Entropy-based adaptation to volatility
☑️ Automatic optimal K selection
☑️ Statistical validation via WCSS & Sharpness
Features
Visual:
• Color-coded levels (red=highest resistance, green=lowest support)
• Optional deviation bands showing cluster spread
• Strength scores on labels: Each cluster shows a reliability score.
• Higher scores (0.8+) = very strong S/R levels with tight price clustering
• Lower scores (0.6-0.7) = weaker levels, use with caution
• Based on cluster tightness and data point density
• Clean line extensions and labels
Analytics:
• WCSS analysis table showing why K was chosen
• Cluster metrics and statistics
• Real-time entropy monitoring
Control:
• Auto/manual K selection toggle
• Customizable sample size (20-500 bars)
• Show/hide bands and metrics tables
The Result
You get mathematically validated S/R levels that focus on where prices actually cluster, not where they randomly spiked. The algorithm adapts to market conditions and removes guesswork from level selection.
Best for: Traders who want objective, data-driven S/R levels without manual chart analysis.
Credits: This script is for educational purposes and is inspired by the work of @ThinkLogicAI and an amazing mentor @DskyzInvestments . It demonstrates how Lorentzian geometrical concepts can be applied not only in ML classification but also quite elegantly in clustering.
EPS+Sales+Net Profit+MCap+Sector & Industry📄 Full Description
This script displays a comprehensive financial data panel directly on your TradingView chart, helping long-term investors and swing traders make informed decisions based on fundamental trends. It consolidates key financial metrics and business classification data into a single, visually clear table.
🔍 Key Features:
🧾 Financial Metrics (Auto-Fetched via request.financial):
EPS (Earnings Per Share) – Displayed with trend direction (QoQ or YoY).
Sales / Revenue – In ₹ Crores (for Indian stocks), trend change also included.
Net Profit – Also in ₹ Crores, along with percentage change.
Market Cap – Automatically calculated using outstanding shares × price, shown in ₹ Cr.
Free Float Market Cap – Based on float shares × price, also in ₹ Cr.
🏷️ Sector & Industry Info:
Automatically identifies and displays the Sector and Industry of the stock using syminfo.sector and syminfo.industry.
Displayed inline with metrics, making it easy to know what business the stock belongs to.
📊 Table View:
Compact and responsive table shown on your chart.
Columns: Date | EPS | QoQ | Sales | QoQ | Net Profit | QoQ | Metrics
Metrics column dynamically shows:
Market Cap
Free Float
Sector (Row 4)
Industry (Row 5)
🌗 Appearance:
Supports Dark Mode and Mini Mode toggle.
You can also customize:
Number of data points (last 4+ quarters or years)
Table position and size
🎯 Use Case:
This script is ideal for:
Fundamental-focused traders who use EPS/Sales trends to identify momentum.
Swing traders who combine price action with fundamental tailwinds.
Portfolio builders who want to see sector/industry alignment quickly.
It works best with fundamentally sound stocks where earnings and profitability are a major factor in price movements.
✅ Important Notes:
Script uses request.financial which only works with supported symbols (mostly stocks).
Market Cap and Free Float are calculated in ₹ Crores.
All financial values are rounded and formatted for readability (e.g., 1,234 Cr).
🙏 Credits:
Developed and published by Sameer Thorappa
Built with a clean, minimalist approach for high readability and functionality.